package gov.gfbzb.advice.controller.vo;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * advice前端显示对象
 * @author 小宇
 * @since 2025-07-05
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Schema(types = "AdviceVO", description = "advice前端显示对象")
public class AdviceVO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 自增id
     */
    @Schema(name = "id", description = "自增id")
    private Integer id;

    /**
     * 标题
     */
    @Schema(name = "title", description = "标题")
    private String title;

    /**
     * 用户咨询问题
     */
    @Schema(name = "content", description = "用户咨询问题")
    private String content;

    /**
     * 回答
     */
    @Schema(name = "answer", description = "回答")
    private String answer;

    /**
     * 用户姓名
     */
    @Schema(name = "userName", description = "用户姓名")
    private String userName;

    /**
     * 身份证
     */
    @Schema(name = "idCard", description = "身份证")
    private String idCard;

    /**
     * 年龄
     */
    @Schema(name = "age", description = "年龄")
    private String age;

    /**
     * 性别
     */
    @Schema(name = "gender", description = "性别")
    private String gender;

    /**
     * 联系方式
     */
    @Schema(name = "phone", description = "联系方式")
    private String phone;

    /**
     * 电子邮箱
     */
    @Schema(name = "email", description = "电子邮箱")
    private String email;

    /**
     * 所在市
     */
    @Schema(name = "city", description = "所在市")
    private String city;

    /**
     * 所在区县
     */
    @Schema(name = "county", description = "所在区县")
    private String county;

    /**
     * 问题状态0审核/1通过
     */
    @Schema(name = "questionStatus", description = "问题状态0审核/1通过")
    private Integer questionStatus;

    /**
     * 浏览次数
     */
    @Schema(name = "viewCount", description = "浏览次数")
    private Integer viewCount;

    /**
     * 驳回人姓名
     */
    @Schema(name = "rejectName", description = "驳回人姓名")
    private String rejectName;

    /**
     * 驳回时间
     */
    @Schema(name = "rejectTime", description = "驳回时间")
    private LocalDateTime rejectTime;

    /**
     * 审核人姓名
     */
    @Schema(name = "verifyName", description = "审核人姓名")
    private String verifyName;

    /**
     * 审核时间
     */
    @Schema(name = "verifyTime", description = "审核时间")
    private LocalDateTime verifyTime;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(fill = FieldFill.INSERT) // 创建时自动填充
    @Schema(name = "createTime", description = "创建时间")
    private LocalDateTime createTime;

    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(fill = FieldFill.INSERT_UPDATE) // 创建与修改时自动填充
    @Schema(name = "updateTime", description = "修改时间")
    private LocalDateTime updateTime;

}
